package com.water_work_form.controller;


import com.baomidou.mybatisplus.core.metadata.IPage;
import com.water_work_form.entity.RecordPotentialPh;
import com.water_work_form.entity.RecordSynchronousComparison;
import com.water_work_form.result.Result;
import com.water_work_form.result.ResultCodeEnum;
import com.water_work_form.result.ResultUtil;
import com.water_work_form.service.RecordSynchronousComparisonService;
import com.water_work_form.util.RandomIdUtil;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.io.IOException;
import java.util.List;
import java.util.Map;

/**
 * <p>
 * 记录——津滨水厂同步比对原始记录 前端控制器
 * </p>
 *
 * @author xuke
 * @since 2023-09-14
 */
@RestController
@RequestMapping("/record-synchronous-comparison")
public class RecordSynchronousComparisonController {


    @Autowired
    RecordSynchronousComparisonService recordSynchronousComparisonService;

    /**
     * 记录——津滨水厂同步比对原始记录 项目新增
     * @param recordSynchronousComparison 新数据
     * @return 返回相应code表示状态 0为成功
     */
    @ApiOperation("新增")
    @PostMapping("/add")
    public Result addRecordSynchronousComparison(@RequestBody RecordSynchronousComparison recordSynchronousComparison){
        recordSynchronousComparison.setId(RandomIdUtil.createRandomId());
        recordSynchronousComparisonService.save(recordSynchronousComparison);
        return ResultUtil.success(ResultCodeEnum.SUCCESS, recordSynchronousComparison);
    }

    /**
     * 记录——津滨水厂同步比对原始记录 项目查询（三个查询项+分页）
     * @param startDate 日期范围查询的开始日期（record_date）
     * @param endDate 日期范围查询的结束日期（record_date）
     * @param samplingUserName 采样人姓名（sampling_user_name）
     * @param checkUserName 检测人姓名（check_user_name）
     * @param current 分页查询当前页
     * @param size 分页查询每页最大数据量
     * @return 返回符合上述查询条件的所有数据
     */
    @ApiOperation("查看(分页)")
    @GetMapping("/pageList")
    public Result listRecordSynchronousComparison(@RequestParam("startDate") String startDate, @RequestParam("endDate") String endDate, @RequestParam("samplingUserName") String samplingUserName, @RequestParam("checkUserName") String checkUserName,
                                                  @RequestParam("status") String status, @RequestParam("current") Integer current, @RequestParam("size") Integer size){
        IPage<RecordSynchronousComparison> page = recordSynchronousComparisonService.selectRecordSynchronousComparison(startDate, endDate, samplingUserName, checkUserName, status, current, size);
        return ResultUtil.success(ResultCodeEnum.SUCCESS, page);
    }

    /**
     * 记录——津滨水厂同步比对原始记录 项目删除
     * @param id 需要删除的数据id
     * @return 返回code表示状态 0为成功
     */
    @ApiOperation("删除")
    @DeleteMapping("/delete")
    public Result deleteRecordSynchronousComparison(@RequestParam("id") Long id){
        recordSynchronousComparisonService.removeById(id);
        return ResultUtil.success(ResultCodeEnum.SUCCESS);
    }

    /**
     * 记录——津滨水厂同步比对原始记录 项目更新
     * @param recordSynchronousComparison 修改后的数据
     * @return 返回code表示状态 0为成功
     */
    @ApiOperation("更新")
    @PostMapping("/update")
    public Result updateRecordSynchronousComparison(@RequestBody RecordSynchronousComparison recordSynchronousComparison){
        recordSynchronousComparisonService.updateById(recordSynchronousComparison);
        return ResultUtil.success(ResultCodeEnum.SUCCESS);
    }

    /**
     * 记录——津滨水厂同步比对原始记录 基础表相应数据查询
     * @param name form基础表name列查询数据
     * @return 返回相应查询结果
     */
    @ApiOperation("基础表数据查询")
    @GetMapping("/basicList")
    public Result listBasicSynchronousComparison( @RequestParam("name") String name ){
        Map<String,Object> map = recordSynchronousComparisonService.selectBasicSynchronousComparison(name);
        return ResultUtil.success(ResultCodeEnum.SUCCESS, map);
    }

    /**
     * 记录——津滨水厂同步比对原始记录 数据表导出
     * @param recordSynchronousComparisonList 需要导出的数据列表
     * @return 返回相应数据
     * @throws IOException 异常
     */
    @ApiOperation("列表导出")
    @PostMapping(value = "/download-word")
    public Result downloadWordRecordSynchronousComparison(@RequestBody List<RecordSynchronousComparison> recordSynchronousComparisonList) throws IOException  {
        recordSynchronousComparisonService.downloadRecordSynchronousComparison(recordSynchronousComparisonList);
        return ResultUtil.success(ResultCodeEnum.SUCCESS);
    }


}

